home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / Includes / graphics / screens.i < prev   
Encoding:
Text File  |  1998-10-19  |  7.5 KB  |  218 lines

  1.     IFND GRAPHICS_SCREENS_I
  2. GRAPHICS_SCREENS_I  SET  1
  3.  
  4. **
  5. **  $VER: screens.i V1.0
  6. **
  7. **  Screen Definitions.
  8. **
  9. **  (C) Copyright 1996-1998 DreamWorld Productions.
  10. **      All Rights Reserved.
  11. **
  12.  
  13.     IFND    DPKERNEL_I
  14.     include 'dpkernel/dpkernel.i'
  15.     ENDC
  16.  
  17. *****************************************************************************
  18. * Module definitions.
  19.  
  20. ScrModVersion  = 1
  21. ScrModRevision = 0
  22.  
  23. *****************************************************************************
  24. * Screen object.
  25.  
  26. SCRVERSION  = 1
  27. TAGS_SCREEN = (ID_SPCTAGS<<16)|ID_SCREEN
  28.  
  29.     STRUCTURE    GS,HEAD_SIZEOF   ;[00] Standard header.
  30.     APTR    GS_MemPtr1       ;[12] Ptr to screen 1.
  31.     APTR    GS_MemPtr2       ;[16] Ptr to screen 2 (doubled buffer)
  32.     APTR    GS_MemPtr3       ;[20] Ptr to screen 3 (tripled buffer)
  33.     APTR    GS_Link          ;[24] ...
  34.     APTR    GS_Raster        ;[28] Ptr to a raster object.
  35.     WORD    GS_Width         ;[32] The width of the visible screen window.
  36.     WORD    GS_Height        ;[34] The height of the visible screen window.
  37.     WORD    GS_XOffset       ;[36] Hardware co-ordinate for TOS.
  38.     WORD    GS_YOffset       ;[38] Hardware co-ordinate for LOS.
  39.     WORD    GS_BmpXOffset    ;[40] Offset of the horizontal axis.
  40.     WORD    GS_BmpYOffset    ;[42] Offset of the vertical axis.
  41.     WORD    GS_ScrMode       ;[44] What screen mode is it?
  42.     WORD    GS_Reserved      ;[46] ...
  43.     LONG    GS_Attrib        ;[48] Special Attributes are?
  44.     APTR    GC_Task          ;[52] Private.
  45.     APTR    GS_Bitmap        ;[56] Pointer to bitmap structure (for blitting).
  46.     WORD    GS_Switch        ;[60] Set to 1 when ready to switch buffers.
  47.  
  48.     ;All of the following fields are private and you will break
  49.     ;compatibility with other GMS versions if you try and access them.
  50.  
  51.     WORD    GS_Prv           ;  1 
  52.     APTR    GS_TypeEmulator  ;  2 Emulation.
  53.     APTR    GS_Monitor       ;  3 Monitor driver.
  54.     APTR    GS_EMemPtr1      ;  4 Chunky driver.
  55.     APTR    GS_EMemPtr2      ;  5 Chunky driver.
  56.     APTR    GS_EMemPtr3      ;  6 Chunky driver.
  57.     APTR    GS_EFree1        ;  7 Chunky driver.
  58.     APTR    GS_EFree2        ;  8 Chunky driver.
  59.     APTR    GS_EFree3        ;  9 Chunky driver.
  60.     BYTE    GS_ColBits       ; 10 0 = 12bit, 1 = 24bit.
  61.     BYTE    GS_Pad           ; 11 Unused.
  62.     LONG    GS_ShowKey       ; 12 Resource key if the screen is shown.
  63.     LONG    GS_Scratch       ; 13 Scratch address!
  64.     APTR    GS_ScreenPrefs   ; 14 Screen preferences for this screen.
  65.     APTR    GC_LineWait      ; 15 Line Wait till bitplanes start.
  66.     APTR    GC_End           ; 16 Ptr to the copper's jump end. (26!)
  67.     WORD    GC_BurstLevel    ; 17 FMode setting for bitplanes.
  68.     APTR    GC_Control       ; 18 BPLCON0
  69.     APTR    GC_Modulo        ; 19 The screen modulo.
  70.     APTR    GC_ScrPosition   ; 20 DIW's, DDF's, DIWHIGH
  71.     APTR    GC_Start         ; 21 Start of main copperlist.
  72.     APTR    GC_Sprites       ; 22 Pointer to the copper sprites.
  73.     APTR    GC_Colours       ; 23 Pointer to the copper colours.
  74.     WORD    GC_AmtBankCols   ; 24 Amount of colours per bank (AGA).
  75.     WORD    GC_AmtBanks      ; 25 Amount of banks in total (AGA).
  76.     WORD    GC_HiLoOffset    ; 26 Offset between hi and lo bits (AGA)
  77.     APTR    GC_Bitplanes1    ; 27 Ptr to copper bitplane loaders #1.
  78.     APTR    GC_Bitplanes2    ; 28 Ptr to copper bitplane loaders #2.
  79.     APTR    GC_Bitplanes3    ; 29 Ptr to copper bitplane loaders #3.
  80.     APTR    GC_ColListJmp    ; 30 Jumper to RasterList.
  81.     LONG    GD_BmpXOffset    ; 31 X offset for scrolling.
  82.     LONG    GD_BmpYOffset    ; 32 Y offset for scrolling.
  83.     WORD    GD_ScrollBWidth  ; 33 Set to 2 if scrolling.
  84.     APTR    GD_MemPtr1       ; 34 Original screen mem start (1).
  85.     APTR    GD_MemPtr2       ; 35 Original screen mem start (2).
  86.     APTR    GD_MemPtr3       ; 36 Original screen mem start (3).
  87.     WORD    GD_BPLCON3       ; 37 BPLCON3 actual data (not a ptr).
  88.     WORD    GD_AmtFields     ; 38 Amount of PlayFields on screen.
  89.     WORD    GD_FieldNum      ; 39 Number of this field...
  90.     WORD    GD_ScrLRWidth    ; 40 ScrWidth, in lo-resolution.
  91.     WORD    GD_ScrLRBWidth   ; 41 ScrByteWidth, in lo-resolution.
  92.     WORD    GD_PicLRWidth    ; 42 PicWidth, in lo-resolution.
  93.     WORD    GD_TOSX          ; 43 Top of screen X for this screen.
  94.     WORD    GD_TOSY          ; 44 Top of screen Y for this screen.
  95.     APTR    GD_CopperMem     ; 45 Pointer to original screen mem start.
  96.     APTR    GD_Bitmap        ; 46 Allocated bitmap.
  97.     WORD    GD_BlitXOffset   ; 47 Offset to use for blitting (hard-scroll).
  98.     APTR    GD_Palette       ; 48 Allocated palette.
  99.     APTR    GD_BufPtr1       ; 49 
  100.     APTR    GD_BufPtr2       ; 50 
  101.     APTR    GD_BufPtr3       ; 51 
  102.     APTR    GD_Rastport      ; 52
  103.  
  104. ;---------------------------------------------------------------------------;
  105. ;Screen Buffer names, these are asked for in the blitter functions.
  106.  
  107. BUFFER1 = GS_MemPtr1
  108. BUFFER2 = GS_MemPtr2
  109. BUFFER3 = GS_MemPtr3
  110.  
  111. ;---------------------------------------------------------------------------;
  112. ;Screen attributes and options (flags for GS_ScrAttrib).
  113.  
  114. B_DBLBUFFER    =  0
  115. B_TPLBUFFER    =  1
  116. B_PLAYFIELD    =  2
  117. B_HSCROLL      =  3
  118. B_VSCROLL      =  4
  119. B_SPRITES      =  5
  120. B_SBUFFER      =  6
  121. B_CENTRE       =  7
  122. B_BLKBDR       =  8
  123. B_NOSCRBDR     =  9
  124. B_PUBLIC       = 10
  125.  
  126. SCR_DBLBUFFER    = (1<<B_DBLBUFFER)    ;For double buffering.
  127. SCR_TPLBUFFER    = (1<<B_TPLBUFFER)    ;Triple buffering!!
  128. SCR_PLAYFIELD    = (1<<B_PLAYFIELD)    ;Set if it's part of a playfield.
  129. SCR_HSCROLL      = (1<<B_HSCROLL)      ;Gotta set this to do scrolling.
  130. SCR_VSCROLL      = (1<<B_VSCROLL)      ;For vertical scrolling.
  131. SCR_SPRITES      = (1<<B_SPRITES)      ;Set this if you want sprites.
  132. SCR_SBUFFER      = (1<<B_SBUFFER)      ;Create a scroll buffer for up to 100 screens.
  133. SCR_CENTRE       = (1<<B_CENTRE)       ;Centre the screen (sets ScrXOffset/ScrYOffset).
  134. SCR_BLKBDR       = (1<<B_BLKBDR)       ;Gives a blackborder on AGA machines.
  135. SCR_NOSCRBDR     = (1<<B_NOSCRBDR)     ;For putting sprites in the border.
  136.  
  137. ;---------------------------------------------------------------------------;
  138. ;Screen modes (flags for GS_ScrMode).
  139.  
  140. B_HIRES   =  0
  141. B_SHIRES  =  1
  142. B_LACED   =  2
  143. B_LORES   =  3
  144. B_SLACED  =  5
  145.  
  146. SM_HIRES   =  $0001  ;High resolution.
  147. SM_SHIRES  =  $0002  ;Super-High resolution.
  148. SM_LACED   =  $0004  ;Interlaced.
  149. SM_LORES   =  $0008  ;Low resolution (default).
  150. SM_SLACED  =  $0020  ;Higher Laced resolution.
  151.  
  152. ;---------------------------------------------------------------------------;
  153. ;Screen Attribute tags.
  154.  
  155. GSA_MemPtr1    = TAPTR|GS_MemPtr1
  156. GSA_MemPtr2    = TAPTR|GS_MemPtr2
  157. GSA_MemPtr3    = TAPTR|GS_MemPtr3
  158. GSA_Raster     = TAPTR|GS_Raster
  159. GSA_Width      = TWORD|GS_Width
  160. GSA_Height     = TWORD|GS_Height
  161. GSA_XOffset    = TWORD|GS_XOffset
  162. GSA_YOffset    = TWORD|GS_YOffset
  163. GSA_BmpXOffset = TWORD|GS_BmpXOffset
  164. GSA_BmpYOffset = TWORD|GS_BmpYOffset
  165. GSA_Attrib     = TLONG|GS_Attrib
  166. GSA_ScrMode    = TWORD|GS_ScrMode
  167.  
  168. GSA_BitmapTags = TSTEPIN|GS_Bitmap
  169.  
  170. *****************************************************************************
  171. * Structure header for raster commands.
  172.  
  173.     STRUCTURE    RasterV1,HEAD_SIZEOF
  174.     APTR    RAS_Command    ;Pointer to the first command.
  175.     APTR    RAS_Screen    ;Pointer to our Screen owner.
  176.     LONG    RAS_Flags    ;Special flags.
  177.  
  178. *****************************************************************************
  179. * Rasterlist Definitions.
  180.  
  181. ID_RASTWAIT       = 1
  182. ID_RASTFLOOD      = 2
  183. ID_RASTCOLOUR     = 3
  184. ID_RASTCOLOURLIST = 4
  185. ID_RASTMIRROR     = 5
  186.  
  187. ID_LASTCOMMAND    = 6
  188.  
  189.     STRUCTURE    RStatsV1,0
  190.     LONG    RSTAT_CopSize
  191.     APTR    RSTAT_CopPos
  192.     LABEL    RSTATS_SIZEOF
  193.  
  194.     STRUCTURE    RHeadV1,0
  195.     WORD    RSH_ID
  196.     WORD    RSH_Version
  197.     APTR    RSH_Stats
  198.     APTR     RSH_Prev
  199.     APTR    RSH_Next
  200.     LABEL    RHEAD_SIZEOF
  201.  
  202.     STRUCTURE    RWaitV1,RHEAD_SIZEOF
  203.     WORD    RSW_Line
  204.  
  205.     STRUCTURE    RFloodV1,RHEAD_SIZEOF
  206.  
  207.     STRUCTURE    RColourV1,RHEAD_SIZEOF
  208.     LONG    RSC_Colour
  209.     LONG    RSC_Value
  210.  
  211.     STRUCTURE    RColourListV1,RHEAD_SIZEOF
  212.     WORD    RCL_Start
  213.     WORD    RCL_Skip
  214.     LONG    RCL_Colour
  215.     APTR    RCL_Values
  216.  
  217.   ENDC    ;GRAPHICS_SCREENS_I
  218.